Since the advent of automation in industrial, bureaucratic and domestic processes, many computer applications for all kinds of uses and various systems have become commercially available.
Industrial applications are for example available for controlling machines in production processes, monitoring chemical processes, controlling surveillance systems for security applications, managing computer networks, providing information from (whether or not remote) data files, keeping all kinds of parameters up-to-date (such as billing systems in telecommunication networks), etc. Furthermore applications are available for all kinds of administrative activities, such as word processing, data processing, bookkeeping, graphic design, presentations, etc. In addition to that, many applications aimed at controlling and managing processes in the field of automation and telecommunication itself may be considered; think in this connection of the setting up of communication links of analog or digital networks, data compression, electronic communication and the like. Those skilled in the art will appreciate in the light of the above examples that the list of possible applications is by no means exhausted.
These applications are generally developed by software developers, employed by software producers. Many of these applications are however also developed by users themselves. Such applications are frequently based on existing applications or systems (Oracle®, Linux®, Microsoft Office®, etc), to which they add specific functionality that is important to the user. In some cases, however, it is necessary to develop custom-made software for specific applications.
Use may be made of developing environments (such as so-called “editor” and “compiler” applications) for developing such software, which environments provide a software developer with an extensive environment for developing computer applications. The developing environment e.g. provides extensive descriptions of available and usable commands in specific programming languages. Using this environment, the software developer can write a script or a source code in a specific programming language. Said script must subsequently be converted by means of a “compiler” into a code that can be directly read and executed by a machine.
The procedure to be followed has this drawback that it is rather laborious and that a large number of preparatory operations are required. This will be explained hereinafter by means of a description of the development of a computer application for, for example, executing a cash dispensing operation in an automatic teller machine.
First the software developer must make a general design, in which he/she must indicate the desired functionality, the required data and the manner in which said data are structured, the interaction with a user that must take place, etc. The software developer will set to work on the basis of this general design.
Before the actual programming is started, the data contained in a database must be suitably structured. In the present example, the software developer will have to make the data stored in data bases of various financial institutions available to the automatic teller machine, and he will have to indicate the manner in which said data must be structured for the teller machine, the relation between said data, etc. In this case said data comprises data on the financial institutions (such as the name of the institutions and data relating to the institution in interbank traffic), identification data of the user of the automatic teller machine (bank account number, PIN code (present on the cheque card), any other verification data), data on the user's bank account (balance, withdrawal limit), etc. Furthermore, data to be input by the user and other data, such as the amount to be withdrawn, the PIN code that has been entered, whether or not the user wishes to receive a receipt, the time and the location of the withdrawal, the banking institution responsible for the cash dispensing operation, etc, must be included in the data structure.
The structuring of the data may take place in various ways. As soon as the software developer knows how to structure the data, he/she must write a data script in which said data structure is laid down for the computer.
Subsequently the software developer needs to spend time on the graphic user interface (GUI). To that end, a number of graphic display images must be designed, which will be shown to the user and in which the user can input information with regard to the user identification as well as information about the cash dispensing operation.
Furthermore a graphic/textual design of a receipt must be made, since the automatic teller machine must be capable of providing receipts at the user's request. In addition to that it may be desirable to design a number of “queries” in Standard Query Language (SQL) for retrieving information from the available data bases.
Once the software developer has completed all preparatory operations, he can start writing the script for the computer application itself. When doing so, he must indicate the sequence of the operations to be carried out by the computer application and the conditions on which said operations are carried out. Furthermore said script will contain a description of the precise operations that are to be carried out with the data, such as verifying the identity data, entering an amount of money (by the user), activating the money dispensing mechanism, printing of a receipt, refreshing the data in the database and waiting for a next client. Conditions that may be important for a correct proceeding of the procedure are, for example, the correct or incorrect entry of the identification data, the amount of the bank balance, the amount to be withdrawn, etc.
As soon as the script is complete, it is compiled or, in other words, converted into a code that can be read by the computer. Said code consists of a series of basic operations that can be carried out by the logic elements of which the computer is made.
After said compilation, the computer application is tested both as regards its functionality and as regards its technical aspects and subsequently adapted, if desired, on the basis of the test results. If the test results are satisfactory, the computer application is put into service. If the results are unsatisfactory, however, the developer will have to go through the developing process anew in whole or in part.
The composition of a computer application is therefore a very laborious activity. As a result, the developing process takes up a great deal of time and can only be carried out by specialised personnel (software developers) having a thorough knowledge of the systems for which the computer application is intended. It is not relevant in this connection whether the programming of automatic teller machines, the controlling of a production line in the factory, the consulting of data bases in general or any other application is concerned. To a greater or lesser extent, the aforesaid operations will have to be carried out at all times.